/**
 * 首页轮播图返回参数
 */
export interface ImagesResponse {
  data: ImageData[]; // 图片数据数组
  meta: {
    pagination: {
      page: number; // 当前页
      pageSize: number; // 每页条目数
      pageCount: number; // 总页数
      total: number; // 总条目数
    };
  };
}

/**
 * 首页导航栏图标
 */
export interface IconResponse {
  attributes: {
    createdAt: string; // 创建时间
    updatedAt: string; // 更新时间
    image: {
      data: ImageData; // 图片数据
    };
  };
}

/**
 * 定义图片的不同尺寸格式
 */
export interface ImageFormat {
  name: string; // 图片名称
  hash: string; // 图片哈希
  ext: string; // 图片扩展名
  mime: string; // 图片 MIME 类型
  width: number; // 图片宽度
  height: number; // 图片高度
  size: number; // 图片大小
  sizeInBytes: number; // 图片字节大小
  url: string; // 图片 URL
}

/**
 * 定义单张图片的属性
 */
export interface ImageAttributes {
  name: string; // 图片名称
  alternativeText: string | null; // 替代文本
  caption: string | null; // 图片说明
  width: number; // 图片宽度
  height: number; // 图片高度
  formats: {
    [key: string]: ImageFormat; // 图片格式（不同尺寸）
  };
  hash: string; // 图片哈希
  ext: string; // 图片扩展名
  mime: string; // 图片 MIME 类型
  size: number; // 图片大小
  url: string; // 图片 URL
  previewUrl: string | null; // 图片预览 URL
  provider: string; // 图片提供者
  provider_metadata: any; // 图片提供者的元数据
  createdAt: string; // 创建时间
  updatedAt: string; // 更新时间
}

/**
 * 定义单张图片的数据结构
 */
export interface ImageData {
  id: number; // 图片 ID
  attributes: ImageAttributes; // 图片属性
}

/**
 * 页码
 */
export interface pageItem {
  pageNo: number; // 当前页码
  pageSize: number; // 每页条目数
  searchTerm?: string; // 搜索词（可选）
}

/**
 * 定义分页信息的结构
 */
export interface PaginationMeta {
  page: number; // 当前页
  pageSize: number; // 每页条目数
  pageCount: number; // 总页数
  total: number; // 总条目数
}

/**
 * 定义政策法规数据的返回结构
 */
export interface PolicyResponse {
  data: PolicyItem[]; // 政策法规条目数组
  meta: {
    pagination: PaginationMeta; // 分页信息
  };
}

/**
 * 定义政策法规条目的属性结构
 */
export interface PolicyAttributes {
  name: string; // 政策名称
  url: string; // URL 地址
  createdAt: string; // 创建时间
  updatedAt: string; // 更新时间
  time: string; // 发布/生效时间
  description: string; // 描述
  type: string; // 类型
}

/**
 * 定义政策法规条目的结构
 */
export interface PolicyItem {
  id: number; // 条目ID
  attributes: PolicyAttributes; // 政策法规条目的属性
}
